home *** CD-ROM | disk | FTP | other *** search
/ Cracking 2 / Cracking II..iso / Tools / ApiHooks 2.2 / hdk / ApiHooks.h < prev    next >
Encoding:
C/C++ Source or Header  |  2000-04-09  |  3.9 KB  |  84 lines

  1. // ApiHook.h - constants and structures for ApiHooks
  2.  
  3.  #define  HOOK_EXPORT      0001
  4.  #define  HOOK_IMPORT      0002
  5.  #define  HOOK_BY_ADDRESS  0004
  6.  #define  HOOK_HARD        0008
  7.  #define  HOOK_NO_UNBIND   0016
  8.  
  9.  #define  HOOK_EXACT       HOOK_EXPORT | HOOK_IMPORT
  10.  #define  HOOK_ALL         HOOK_EXPORT | HOOK_BY_ADDRESS
  11.  
  12.  #ifdef UNICODE
  13.   #define  HOOKS_END       (LPCWSTR)-1
  14.   #define  HOOKS_DYNAMIC   (LPCWSTR)-2
  15.   #define  ALL_MODULES     (LPCWSTR)-1
  16.  #else
  17.   #define  HOOKS_END       (LPCSTR)-1
  18.   #define  HOOKS_DYNAMIC   (LPCSTR)-2
  19.   #define  ALL_MODULES     (LPCSTR)-1
  20.  #endif
  21.  
  22.  typedef struct  _ADDR_CONTENTS      {
  23.   DWORD         *ReturnWhere;
  24.   DWORD          ReturnWhat;
  25.  } ADDR_CONTENTS, *PADDR_CONTENTS;
  26.  
  27.  typedef  struct _API_UNHOOK  {
  28.   DWORD          MaxNoAddr;
  29.   DWORD          CurNoAddr;
  30.   PADDR_CONTENTS WhereWhat; 
  31.  } API_UNHOOK, *PAPI_UNHOOK;
  32.  
  33.  typedef struct  _API_HOOK   {
  34.   LPCSTR       ModuleExport;
  35.   LPCSTR       ApiNameOrOrd;
  36.   DWORD        dwFlags;
  37.   LPCSTR       ModuleImport;
  38.   PAPI_UNHOOK  UnhookAddresses;
  39.   LPVOID       HookAddress;
  40.  } API_HOOK, *PAPI_HOOK;
  41.  
  42.  
  43.  __declspec(dllimport) DWORD __stdcall EstablishApiHooksA(LPCSTR lpszDll, DWORD ProcessId);
  44.  __declspec(dllimport) DWORD __stdcall EstablishApiHooksW(LPCWSTR lpszDll, DWORD ProcessId);
  45.  __declspec(dllimport) DWORD __stdcall EstablishApiHooksTimeA(LPCSTR lpszDll, DWORD ProcessId, LONG dwMilliseconds);
  46.  __declspec(dllimport) DWORD __stdcall EstablishApiHooksTimeW(LPCWSTR lpszDll, DWORD ProcessId, LONG dwMilliseconds);
  47.  __declspec(dllimport) DWORD __stdcall EstablishApiHooksTimeNTA(LPCSTR lpszDll, DWORD ProcessId, LONG dwMilliseconds);
  48.  __declspec(dllimport) DWORD __stdcall EstablishApiHooksTimeNTW(LPCWSTR lpszDll, DWORD ProcessId, LONG dwMilliseconds);
  49.  __declspec(dllimport) DWORD __stdcall RemoteExecuteTime(DWORD ProcessId, LONG dwMilliseconds, LPVOID lpBlock, DWORD BlockSize, LPVOID lpCodeEnd);
  50.  __declspec(dllimport) DWORD __stdcall RemoteExecuteTimeNT(DWORD ProcessId, LONG dwMilliseconds, LPVOID lpBlock, DWORD BlockSize, LPVOID lpCodeEnd);
  51.  __declspec(dllimport) DWORD __stdcall IsModuleLoadedA(LPCSTR lpszDll, DWORD ProcessId);
  52.  __declspec(dllimport) DWORD __stdcall IsModuleLoadedW(LPCWSTR lpszDll, DWORD ProcessId);
  53.  __declspec(dllimport) DWORD __stdcall LoadAndCallA(LPCSTR lpszDll, DWORD ProcessId, DWORD HowManyTimes, LPCSTR ApiNameOrOrd);
  54.  __declspec(dllimport) DWORD __stdcall LoadAndCallW(LPCWSTR lpszDll, DWORD ProcessId, DWORD HowManyTimes, LPCWSTR ApiNameOrOrd);
  55.  __declspec(dllimport) DWORD __stdcall UnloadModuleA(LPCSTR lpszDll, DWORD ProcessId, DWORD HowManyTimes);
  56.  __declspec(dllimport) DWORD __stdcall UnloadModuleW(LPCWSTR lpszDll, DWORD ProcessId, DWORD HowManyTimes);
  57.  __declspec(dllimport) DWORD __stdcall HookApiA(LPCSTR  ModuleExport, LPCSTR ApiNameOrOrd,  DWORD dwFlags, LPCSTR ModuleImport,  PAPI_UNHOOK ApiUnhook, LPVOID HookAddress, HANDLE ExcludeModules[]);
  58.  __declspec(dllimport) DWORD __stdcall HookApiW(LPCWSTR ModuleExport, LPCWSTR ApiNameOrOrd, DWORD dwFlags, LPCWSTR ModuleImport, PAPI_UNHOOK ApiUnhook, LPVOID HookAddress, HANDLE ExcludeModules[]);
  59.  
  60.  #ifdef UNICODE
  61.  #define EstablishApiHooks  EstablishApiHooksW
  62.  #define EstablishApiHooksTime  EstablishApiHooksTimeW
  63.  #define EstablishApiHooksTimeNT  EstablishApiHooksTimeNTW
  64.  #define IsModuleLoaded  IsModuleLoadedW
  65.  #define LoadAndCall  LoadAndCallW
  66.  #define UnloadModule  UnloadModuleW
  67.  #define HookApi  HookApiW
  68.  #else
  69.  #define EstablishApiHooks  EstablishApiHooksA
  70.  #define EstablishApiHooksTime  EstablishApiHooksTimeA
  71.  #define EstablishApiHooksTimeNT  EstablishApiHooksTimeNTA
  72.  #define IsModuleLoaded  IsModuleLoadedA
  73.  #define LoadAndCall   LoadAndCallA
  74.  #define UnloadModule  UnloadModuleA
  75.  #define HookApi  HookApiA
  76.  #endif
  77.  
  78.  #define  ErrorSuccess     0
  79.  #define  ErrorException   1
  80.  #define  ErrorOpenProcess 2
  81.  #define  ErrorRemoteAlloc 3
  82.  #define  ErrorRemoteExec  4
  83.  #define  ErrorRemoteFree  5
  84.  #define  ErrorTimeOut     9